@echo off
REM Curl Converter Docker 构建和部署脚本 (Windows)

setlocal

REM 配置变量
set IMAGE_NAME=curlconverter-webui
set TAG=%1
if "%TAG%"=="" set TAG=latest
set CONTAINER_NAME=curlconverter-webui
set PORT=%2
if "%PORT%"=="" set PORT=3000

echo 🚀 开始构建 Curl Converter Docker 镜像...

REM 检查Docker是否安装
docker --version >nul 2>&1
if errorlevel 1 (
    echo ❌ Docker 未安装，请先安装 Docker Desktop
    pause
    exit /b 1
)

REM 停止并删除现有容器（如果存在）
docker ps -aq -f name=%CONTAINER_NAME% >nul 2>&1
if not errorlevel 1 (
    echo 🛑 停止现有容器...
    docker stop %CONTAINER_NAME% >nul 2>&1
    docker rm %CONTAINER_NAME% >nul 2>&1
)

REM 构建镜像
echo 📦 构建 Docker 镜像...
docker build -t %IMAGE_NAME%:%TAG% .
if errorlevel 1 (
    echo ❌ 镜像构建失败
    pause
    exit /b 1
)

REM 运行容器
echo 🌟 启动容器...
docker run -d --name %CONTAINER_NAME% -p %PORT%:80 --restart unless-stopped %IMAGE_NAME%:%TAG%
if errorlevel 1 (
    echo ❌ 容器启动失败
    pause
    exit /b 1
)

REM 等待容器启动
echo ⏳ 等待容器启动...
timeout /t 5 /nobreak >nul

REM 检查容器状态
docker ps -q -f name=%CONTAINER_NAME% >nul 2>&1
if not errorlevel 1 (
    echo ✅ 容器启动成功！
    echo 🌐 访问地址: http://localhost:%PORT%
    docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" -f name=%CONTAINER_NAME%
) else (
    echo ❌ 容器启动失败
    echo 查看日志: docker logs %CONTAINER_NAME%
    pause
    exit /b 1
)

echo.
echo 📋 有用的命令:
echo   查看日志: docker logs %CONTAINER_NAME%
echo   停止容器: docker stop %CONTAINER_NAME%
echo   重启容器: docker restart %CONTAINER_NAME%
echo   删除容器: docker rm -f %CONTAINER_NAME%
echo   删除镜像: docker rmi %IMAGE_NAME%:%TAG%
echo.
pause